Load libraries
library(knitr)
library(rmdformats)
library(ggplot2)
library(ggpubr)
library(GGally)
library(car)
library(tidyverse)
library(lme4)
library(lmerTest)
library("MuMIn")
library(lmtest)
library(boot)
Read datasets
AllSubs_NeuralActivation <- read.csv('/Users/luisalvarez/Documents/GitHub/RM_Thesis_Neuroforecasting/ProcessedData/AllSubs_NeuralActivation_Aggregate_Combined_clean.csv')
AllSubs_NeuralActivation_Comedy <- read.csv('/Users/luisalvarez/Documents/GitHub/RM_Thesis_Neuroforecasting/ProcessedData/AllSubs_NeuralActivation_Aggregate_Combined_Comedy_clean.csv')
AllSubs_NeuralActivation_Horror <- read.csv('/Users/luisalvarez/Documents/GitHub/RM_Thesis_Neuroforecasting/ProcessedData/AllSubs_NeuralActivation_Aggregate_Combined_Horror_clean.csv')
Create data frames for each model.
# Define aggregate variables.
All_Gross_M1_log <- log(AllSubs_NeuralActivation$Gross_US_M1)
All_Theaters_M1 <- AllSubs_NeuralActivation$Theaters_US_M1
Comedy_Gross_M1_log <- log(AllSubs_NeuralActivation_Comedy$Gross_US_M1)
Comedy_Theaters_M1 <- AllSubs_NeuralActivation_Comedy$Theaters_US_M1
Horror_Gross_M1_log <- log(AllSubs_NeuralActivation_Horror$Gross_US_M1)
Horror_Theaters_M1 <- AllSubs_NeuralActivation_Horror$Theaters_US_M1
M1_df <- data.frame(All_Gross_M1_log, All_Theaters_M1)
M1_C_df <- data.frame(Comedy_Gross_M1_log, Comedy_Theaters_M1)
M1_H_df <- data.frame(Horror_Gross_M1_log, Horror_Theaters_M1)
# Define affect variables.
All_PA <- AllSubs_NeuralActivation$Pos_arousal_scaled
All_NA <- AllSubs_NeuralActivation$Neg_arousal_scaled
Comedy_PA <- AllSubs_NeuralActivation_Comedy$Pos_arousal_scaled
Comedy_NA <- AllSubs_NeuralActivation_Comedy$Neg_arousal_scaled
Horror_PA <- AllSubs_NeuralActivation_Horror$Pos_arousal_scaled
Horror_NA <- AllSubs_NeuralActivation_Horror$Neg_arousal_scaled
M2_df <- data.frame(All_Gross_M1_log, All_PA, All_NA)
M2_C_df <- data.frame(Comedy_Gross_M1_log, Comedy_PA, Comedy_NA)
M2_H_df <- data.frame(Horror_Gross_M1_log, Horror_PA, Horror_NA)
# Define ISC variables.
All_NAcc_ISC <- AllSubs_NeuralActivation$NAcc_ISC
All_AIns_ISC <- AllSubs_NeuralActivation$AIns_ISC
All_MPFC_ISC <- AllSubs_NeuralActivation$MPFC_ISC
Comedy_NAcc_ISC <- AllSubs_NeuralActivation_Comedy$NAcc_ISC
Comedy_AIns_ISC <- AllSubs_NeuralActivation_Comedy$AIns_ISC
Comedy_MPFC_ISC <- AllSubs_NeuralActivation_Comedy$MPFC_ISC
Horror_NAcc_ISC <- AllSubs_NeuralActivation_Horror$NAcc_ISC
Horror_AIns_ISC <- AllSubs_NeuralActivation_Horror$AIns_ISC
Horror_MPFC_ISC <- AllSubs_NeuralActivation_Horror$MPFC_ISC
# Define models.
M4_df <- data.frame(All_NAcc_ISC, All_AIns_ISC, All_MPFC_ISC)
M4_C_df <- data.frame(Comedy_NAcc_ISC, Comedy_AIns_ISC, Comedy_MPFC_ISC)
M4_H_df <- data.frame(Horror_NAcc_ISC, Horror_AIns_ISC, Horror_MPFC_ISC)
M5_df <- data.frame(All_Gross_M1_log, All_PA, All_NA, All_NAcc_ISC, All_AIns_ISC, All_MPFC_ISC)
M5_C_df <- data.frame(Comedy_Gross_M1_log, Comedy_PA, Comedy_NA, Comedy_NAcc_ISC, Comedy_AIns_ISC, Comedy_MPFC_ISC)
M5_H_df <- data.frame(Horror_Gross_M1_log, Horror_PA, Horror_NA, Horror_NAcc_ISC, Horror_AIns_ISC, Horror_MPFC_ISC)
# Define whole variables.
All_NAcc_whole <- AllSubs_NeuralActivation$NAcc_whole
All_AIns_whole <- AllSubs_NeuralActivation$AIns_whole
All_MPFC_whole <- AllSubs_NeuralActivation$MPFC_whole
Comedy_NAcc_whole <- AllSubs_NeuralActivation_Comedy$NAcc_whole
Comedy_AIns_whole <- AllSubs_NeuralActivation_Comedy$AIns_whole
Comedy_MPFC_whole <- AllSubs_NeuralActivation_Comedy$MPFC_whole
Horror_NAcc_whole <- AllSubs_NeuralActivation_Horror$NAcc_whole
Horror_AIns_whole <- AllSubs_NeuralActivation_Horror$AIns_whole
Horror_MPFC_whole <- AllSubs_NeuralActivation_Horror$MPFC_whole
# Define models.
M6_df <- data.frame(All_NAcc_whole, All_AIns_whole, All_MPFC_whole)
M6_C_df <- data.frame(Comedy_NAcc_whole, Comedy_AIns_whole, Comedy_MPFC_whole)
M6_H_df <- data.frame(Horror_NAcc_whole, Horror_AIns_whole, Horror_MPFC_whole)
M7_df <- data.frame(All_Gross_M1_log, All_PA, All_NA, All_NAcc_whole, All_AIns_whole, All_MPFC_whole)
M7_C_df <- data.frame(Comedy_Gross_M1_log, Comedy_PA, Comedy_NA, Comedy_NAcc_whole,
Comedy_AIns_whole, Comedy_MPFC_whole)
M7_H_df <- data.frame(Horror_Gross_M1_log, Horror_PA, Horror_NA, Horror_NAcc_whole,
Horror_AIns_whole, Horror_MPFC_whole)
# Define onset variables.
All_NAcc_onset <- AllSubs_NeuralActivation$NAcc_onset
All_AIns_onset <- AllSubs_NeuralActivation$AIns_onset
All_MPFC_onset <- AllSubs_NeuralActivation$MPFC_onset
Comedy_NAcc_onset <- AllSubs_NeuralActivation_Comedy$NAcc_onset
Comedy_AIns_onset <- AllSubs_NeuralActivation_Comedy$AIns_onset
Comedy_MPFC_onset <- AllSubs_NeuralActivation_Comedy$MPFC_onset
Horror_NAcc_onset <- AllSubs_NeuralActivation_Horror$NAcc_onset
Horror_AIns_onset <- AllSubs_NeuralActivation_Horror$AIns_onset
Horror_MPFC_onset <- AllSubs_NeuralActivation_Horror$MPFC_onset
# Define models.
M8_df <- data.frame(All_NAcc_onset, All_AIns_onset, All_MPFC_onset)
M8_C_df <- data.frame(Comedy_NAcc_onset, Comedy_AIns_onset, Comedy_MPFC_onset)
M8_H_df <- data.frame(Horror_NAcc_onset, Horror_AIns_onset, Horror_MPFC_onset)
M9_df <- data.frame(All_Gross_M1_log, All_PA, All_NA, All_NAcc_onset, All_AIns_onset, All_MPFC_onset)
M9_C_df <- data.frame(Comedy_Gross_M1_log, Comedy_PA, Comedy_NA, Comedy_NAcc_onset,
Comedy_AIns_onset, Comedy_MPFC_onset)
M9_H_df <- data.frame(Horror_Gross_M1_log, Horror_PA, Horror_NA, Horror_NAcc_onset,
Horror_AIns_onset, Horror_MPFC_onset)
# Define middle variables.
All_NAcc_middle <- AllSubs_NeuralActivation$NAcc_middle
All_AIns_middle <- AllSubs_NeuralActivation$AIns_middle
All_MPFC_middle <- AllSubs_NeuralActivation$MPFC_middle
Comedy_NAcc_middle <- AllSubs_NeuralActivation_Comedy$NAcc_middle
Comedy_AIns_middle <- AllSubs_NeuralActivation_Comedy$AIns_middle
Comedy_MPFC_middle <- AllSubs_NeuralActivation_Comedy$MPFC_middle
Horror_NAcc_middle <- AllSubs_NeuralActivation_Horror$NAcc_middle
Horror_AIns_middle <- AllSubs_NeuralActivation_Horror$AIns_middle
Horror_MPFC_middle <- AllSubs_NeuralActivation_Horror$MPFC_middle
# Define models.
M10_df <- data.frame(All_NAcc_middle, All_AIns_middle, All_MPFC_middle)
M10_C_df <- data.frame(Comedy_NAcc_middle, Comedy_AIns_middle, Comedy_MPFC_middle)
M10_H_df <- data.frame(Horror_NAcc_middle, Horror_AIns_middle, Horror_MPFC_middle)
M11_df <- data.frame(All_Gross_M1_log, All_PA, All_NA, All_NAcc_middle, All_AIns_middle, All_MPFC_middle)
M11_C_df <- data.frame(Comedy_Gross_M1_log, Comedy_PA, Comedy_NA, Comedy_NAcc_middle,
Comedy_AIns_middle, Comedy_MPFC_middle)
M11_H_df <- data.frame(Horror_Gross_M1_log, Horror_PA, Horror_NA, Horror_NAcc_middle,
Horror_AIns_middle, Horror_MPFC_middle)
# Define middle variables.
All_NAcc_offset <- AllSubs_NeuralActivation$NAcc_offset
All_AIns_offset <- AllSubs_NeuralActivation$AIns_offset
All_MPFC_offset <- AllSubs_NeuralActivation$MPFC_offset
Comedy_NAcc_offset <- AllSubs_NeuralActivation_Comedy$NAcc_offset
Comedy_AIns_offset <- AllSubs_NeuralActivation_Comedy$AIns_offset
Comedy_MPFC_offset <- AllSubs_NeuralActivation_Comedy$MPFC_offset
Horror_NAcc_offset <- AllSubs_NeuralActivation_Horror$NAcc_offset
Horror_AIns_offset <- AllSubs_NeuralActivation_Horror$AIns_offset
Horror_MPFC_offset <- AllSubs_NeuralActivation_Horror$MPFC_offset
# Define models.
M12_df <- data.frame(All_NAcc_offset, All_AIns_offset, All_MPFC_offset)
M12_C_df <- data.frame(Comedy_NAcc_offset, Comedy_AIns_offset, Comedy_MPFC_offset)
M12_H_df <- data.frame(Horror_NAcc_offset, Horror_AIns_offset, Horror_MPFC_offset)
M13_df <- data.frame(All_Gross_M1_log, All_PA, All_NA, All_NAcc_offset, All_AIns_offset, All_MPFC_offset)
M13_C_df <- data.frame(Comedy_Gross_M1_log, Comedy_PA, Comedy_NA, Comedy_NAcc_offset,
Comedy_AIns_offset, Comedy_MPFC_offset)
M13_H_df <- data.frame(Horror_Gross_M1_log, Horror_PA, Horror_NA, Horror_NAcc_offset,
Horror_AIns_offset, Horror_MPFC_offset)
M14_df <- data.frame(All_Gross_M1_log, All_PA, All_NA, All_NAcc_onset, All_AIns_middle, All_MPFC_offset)
M14_C_df <- data.frame(Comedy_Gross_M1_log, Comedy_PA, Comedy_NA, Comedy_NAcc_onset,
Comedy_AIns_middle, Comedy_MPFC_offset)
M14_H_df <- data.frame(Horror_Gross_M1_log, Horror_PA, Horror_NA, Horror_NAcc_onset,
Horror_AIns_middle, Horror_MPFC_offset)
Notes:
- Have note removed outliers from data.
Neuroforecasting: First Month US.
M1: Aggregste data
Call:
lm(formula = log(Gross_US_M1) ~ Type + +scale(Theaters_US_M1) +
Type:scale(Theaters_US_M1), data = AllSubs_NeuralActivation %>%
mutate(Type = factor(Type, levels = c("horror", "comedy"))))
Residuals:
Min 1Q Median 3Q Max
-0.77903 -0.23205 -0.05965 0.21883 0.83396
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 17.21275 0.12503 137.673 < 2e-16 ***
Typecomedy -0.03297 0.16727 -0.197 0.845
scale(Theaters_US_M1) 0.96069 0.17747 5.413 1.13e-05 ***
Typecomedy:scale(Theaters_US_M1) -0.24037 0.20114 -1.195 0.243
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.4365 on 26 degrees of freedom
Multiple R-squared: 0.7846, Adjusted R-squared: 0.7597
F-statistic: 31.56 on 3 and 26 DF, p-value: 8.065e-09
R2m R2c
[1,] 0.7655209 0.7655209
[1] 41.10136



M2: Affective data alone
Call:
lm(formula = log(Gross_US_M1) ~ Type + scale(Pos_arousal_scaled) +
scale(Neg_arousal_scaled) + Type:scale(Pos_arousal_scaled) +
Type:scale(Neg_arousal_scaled), data = AllSubs_NeuralActivation %>%
mutate(Type = factor(Type, levels = c("horror", "comedy"))))
Residuals:
Min 1Q Median 3Q Max
-1.2843 -0.6926 0.1338 0.4828 1.3591
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 17.6704 0.6299 28.051 <2e-16 ***
Typecomedy -1.6873 1.0543 -1.600 0.123
scale(Pos_arousal_scaled) -0.3907 0.4778 -0.818 0.422
scale(Neg_arousal_scaled) -0.5110 0.4545 -1.124 0.272
Typecomedy:scale(Pos_arousal_scaled) 0.7876 0.5368 1.467 0.155
Typecomedy:scale(Neg_arousal_scaled) -0.4148 1.0734 -0.386 0.703
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.845 on 24 degrees of freedom
Multiple R-squared: 0.2545, Adjusted R-squared: 0.09923
F-statistic: 1.639 on 5 and 24 DF, p-value: 0.188
R2m R2c
[1,] 0.2203203 0.2203203
[1] 82.33984



M3: Aggregate and affective data alone
Call:
lm(formula = log(Gross_US_M1) ~ Type + scale(Pos_arousal_scaled) +
scale(Neg_arousal_scaled) + Type:scale(Pos_arousal_scaled) +
Type:scale(Neg_arousal_scaled), data = AllSubs_NeuralActivation %>%
mutate(Type = factor(Type, levels = c("horror", "comedy"))))
Residuals:
Min 1Q Median 3Q Max
-1.2843 -0.6926 0.1338 0.4828 1.3591
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 17.6704 0.6299 28.051 <2e-16 ***
Typecomedy -1.6873 1.0543 -1.600 0.123
scale(Pos_arousal_scaled) -0.3907 0.4778 -0.818 0.422
scale(Neg_arousal_scaled) -0.5110 0.4545 -1.124 0.272
Typecomedy:scale(Pos_arousal_scaled) 0.7876 0.5368 1.467 0.155
Typecomedy:scale(Neg_arousal_scaled) -0.4148 1.0734 -0.386 0.703
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.845 on 24 degrees of freedom
Multiple R-squared: 0.2545, Adjusted R-squared: 0.09923
F-statistic: 1.639 on 5 and 24 DF, p-value: 0.188
R2m R2c
[1,] 0.2203203 0.2203203
[1] 82.33984
M4: ISC data alone
Call:
lm(formula = log(Gross_US_M1) ~ Type + +scale(NAcc_ISC) + scale(AIns_ISC) +
scale(MPFC_ISC) + Type:scale(NAcc_ISC) + Type:scale(AIns_ISC) +
Type:scale(MPFC_ISC), data = AllSubs_NeuralActivation %>%
mutate(Type = factor(Type, levels = c("horror", "comedy"))))
Residuals:
Min 1Q Median 3Q Max
-1.1415 -0.5179 -0.0290 0.3284 1.7190
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 17.35882 0.24765 70.093 <2e-16 ***
Typecomedy -0.32720 0.33377 -0.980 0.3376
scale(NAcc_ISC) 0.82609 0.36598 2.257 0.0343 *
scale(AIns_ISC) -0.23898 0.24217 -0.987 0.3345
scale(MPFC_ISC) 0.04594 0.36435 0.126 0.9008
Typecomedy:scale(NAcc_ISC) -0.87443 0.42880 -2.039 0.0536 .
Typecomedy:scale(AIns_ISC) 0.40309 0.41697 0.967 0.3442
Typecomedy:scale(MPFC_ISC) 0.12766 0.42544 0.300 0.7669
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.8607 on 22 degrees of freedom
Multiple R-squared: 0.2911, Adjusted R-squared: 0.06551
F-statistic: 1.29 on 7 and 22 DF, p-value: 0.3005
R2m R2c
[1,] 0.2375059 0.2375059
[1] 84.832



M5: ISC data + affective data + behavioral data
Call:
lm(formula = log(Gross_US_M1) ~ Type + scale(Theaters_US_M1) +
scale(Pos_arousal_scaled) + scale(Neg_arousal_scaled) + scale(NAcc_ISC) +
scale(AIns_ISC) + scale(MPFC_ISC) + Type:scale(Theaters_US_M1) +
Type:scale(Pos_arousal_scaled) + Type:scale(Neg_arousal_scaled) +
Type:scale(NAcc_ISC) + Type:scale(AIns_ISC) + Type:scale(MPFC_ISC),
data = AllSubs_NeuralActivation %>% mutate(Type = factor(Type,
levels = c("horror", "comedy"))))
Residuals:
Min 1Q Median 3Q Max
-0.61447 -0.19931 -0.01218 0.17574 0.65657
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 16.8771 0.3831 44.053 < 2e-16 ***
Typecomedy -0.1961 0.6399 -0.307 0.76316
scale(Theaters_US_M1) 0.9387 0.2874 3.266 0.00485 **
scale(Pos_arousal_scaled) -0.5317 0.2352 -2.261 0.03806 *
scale(Neg_arousal_scaled) -0.1696 0.2726 -0.622 0.54257
scale(NAcc_ISC) 0.1718 0.2617 0.657 0.52082
scale(AIns_ISC) -0.1537 0.1184 -1.298 0.21253
scale(MPFC_ISC) 0.4706 0.1961 2.400 0.02893 *
Typecomedy:scale(Theaters_US_M1) -0.2456 0.3124 -0.786 0.44335
Typecomedy:scale(Pos_arousal_scaled) 0.6018 0.3027 1.988 0.06415 .
Typecomedy:scale(Neg_arousal_scaled) -0.3782 0.6226 -0.607 0.55208
Typecomedy:scale(NAcc_ISC) -0.1277 0.3106 -0.411 0.68651
Typecomedy:scale(AIns_ISC) 0.0596 0.2458 0.242 0.81153
Typecomedy:scale(MPFC_ISC) -0.4412 0.2321 -1.901 0.07543 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.4051 on 16 degrees of freedom
Multiple R-squared: 0.8858, Adjusted R-squared: 0.7929
F-statistic: 9.543 on 13 and 16 DF, p-value: 3.208e-05
R2m R2c
[1,] 0.8105311 0.8105311
[1] 42.068



M6: Neural whole data alone
Call:
lm(formula = log(Gross_US_M1) ~ Type + +scale(NAcc_whole) + scale(AIns_whole) +
scale(MPFC_whole) + Type:scale(NAcc_whole) + Type:scale(AIns_whole) +
Type:scale(MPFC_whole), data = AllSubs_NeuralActivation %>%
mutate(Type = factor(Type, levels = c("horror", "comedy"))))
Residuals:
Min 1Q Median 3Q Max
-1.32304 -0.50651 -0.08924 0.60106 1.97862
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 17.35384 0.33174 52.312 <2e-16 ***
Typecomedy 0.06926 0.47558 0.146 0.886
scale(NAcc_whole) -0.39315 0.29889 -1.315 0.202
scale(AIns_whole) 0.27509 0.35468 0.776 0.446
scale(MPFC_whole) 0.05432 0.31449 0.173 0.864
Typecomedy:scale(NAcc_whole) 0.33746 0.40993 0.823 0.419
Typecomedy:scale(AIns_whole) 0.37420 0.55585 0.673 0.508
Typecomedy:scale(MPFC_whole) -0.01654 0.38884 -0.043 0.966
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.8986 on 22 degrees of freedom
Multiple R-squared: 0.2274, Adjusted R-squared: -0.01845
F-statistic: 0.9249 on 7 and 22 DF, p-value: 0.5067
R2m R2c
[1,] 0.182512 0.182512
[1] 87.41332



M7: Neural whole data + affective data + behavioral data
Call:
lm(formula = log(Gross_US_M1) ~ Type + scale(Theaters_US_M1) +
scale(Pos_arousal_scaled) + scale(Neg_arousal_scaled) + scale(NAcc_whole) +
scale(AIns_whole) + scale(MPFC_whole) + Type:scale(Theaters_US_M1) +
Type:scale(Pos_arousal_scaled) + Type:scale(Neg_arousal_scaled) +
Type:scale(NAcc_whole) + Type:scale(AIns_whole) + Type:scale(MPFC_whole),
data = AllSubs_NeuralActivation %>% mutate(Type = factor(Type,
levels = c("horror", "comedy"))))
Residuals:
Min 1Q Median 3Q Max
-0.77925 -0.23188 -0.03919 0.21060 0.71933
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 16.75767 0.41552 40.330 < 2e-16 ***
Typecomedy -0.20478 0.70623 -0.290 0.775566
scale(Theaters_US_M1) 0.91243 0.21522 4.240 0.000625 ***
scale(Pos_arousal_scaled) -0.46120 0.39426 -1.170 0.259217
scale(Neg_arousal_scaled) 0.05169 0.31610 0.164 0.872150
scale(NAcc_whole) -0.18524 0.16086 -1.152 0.266439
scale(AIns_whole) 0.17901 0.19312 0.927 0.367723
scale(MPFC_whole) 0.11211 0.23464 0.478 0.639258
Typecomedy:scale(Theaters_US_M1) -0.30435 0.24944 -1.220 0.240103
Typecomedy:scale(Pos_arousal_scaled) 0.59979 0.42522 1.411 0.177531
Typecomedy:scale(Neg_arousal_scaled) -0.87950 0.75108 -1.171 0.258753
Typecomedy:scale(NAcc_whole) 0.10170 0.25257 0.403 0.692530
Typecomedy:scale(AIns_whole) 0.14450 0.33688 0.429 0.673697
Typecomedy:scale(MPFC_whole) -0.08881 0.26652 -0.333 0.743285
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.4551 on 16 degrees of freedom
Multiple R-squared: 0.8559, Adjusted R-squared: 0.7387
F-statistic: 7.308 on 13 and 16 DF, p-value: 0.000175
R2m R2c
[1,] 0.7661365 0.7661365
[1] 49.04303



M8: Neural onset data alone
Call:
lm(formula = log(Gross_US_M1) ~ Type + +scale(NAcc_onset) + scale(AIns_onset) +
scale(MPFC_onset) + Type:scale(NAcc_onset) + Type:scale(AIns_onset) +
Type:scale(MPFC_onset), data = AllSubs_NeuralActivation %>%
mutate(Type = factor(Type, levels = c("horror", "comedy"))))
Residuals:
Min 1Q Median 3Q Max
-1.56852 -0.68099 0.03323 0.60789 1.56732
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 17.51995 0.27900 62.795 <2e-16 ***
Typecomedy -0.53256 0.37467 -1.421 0.169
scale(NAcc_onset) -0.27027 0.29988 -0.901 0.377
scale(AIns_onset) -0.05588 0.35386 -0.158 0.876
scale(MPFC_onset) 0.10611 0.30796 0.345 0.734
Typecomedy:scale(NAcc_onset) 0.62362 0.39292 1.587 0.127
Typecomedy:scale(AIns_onset) -0.08131 0.49394 -0.165 0.871
Typecomedy:scale(MPFC_onset) 0.21547 0.44127 0.488 0.630
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.8807 on 22 degrees of freedom
Multiple R-squared: 0.2578, Adjusted R-squared: 0.02162
F-statistic: 1.092 on 7 and 22 DF, p-value: 0.4021
R2m R2c
[1,] 0.2085365 0.2085365
[1] 86.20888



M9: Neural onset data + affective data + behavioral data
Call:
lm(formula = log(Gross_US_M1) ~ Type + scale(Theaters_US_M1) +
scale(Pos_arousal_scaled) + scale(Neg_arousal_scaled) + scale(NAcc_onset) +
scale(AIns_onset) + scale(MPFC_onset) + Type:scale(Theaters_US_M1) +
Type:scale(Pos_arousal_scaled) + Type:scale(Neg_arousal_scaled) +
Type:scale(NAcc_onset) + Type:scale(AIns_onset) + Type:scale(MPFC_onset),
data = AllSubs_NeuralActivation %>% mutate(Type = factor(Type,
levels = c("horror", "comedy"))))
Residuals:
Min 1Q Median 3Q Max
-0.48991 -0.18987 -0.01771 0.20364 0.57552
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 17.43628 0.42827 40.713 < 2e-16 ***
Typecomedy -0.52314 0.64739 -0.808 0.4309
scale(Theaters_US_M1) 0.97894 0.17928 5.460 5.24e-05 ***
scale(Pos_arousal_scaled) -0.41513 0.27486 -1.510 0.1505
scale(Neg_arousal_scaled) -0.31982 0.29709 -1.077 0.2977
scale(NAcc_onset) -0.29130 0.13192 -2.208 0.0422 *
scale(AIns_onset) -0.45891 0.20477 -2.241 0.0396 *
scale(MPFC_onset) 0.19915 0.16578 1.201 0.2471
Typecomedy:scale(Theaters_US_M1) -0.28279 0.20766 -1.362 0.1921
Typecomedy:scale(Pos_arousal_scaled) 0.51509 0.30803 1.672 0.1139
Typecomedy:scale(Neg_arousal_scaled) 0.03968 0.59659 0.067 0.9478
Typecomedy:scale(NAcc_onset) 0.34909 0.19837 1.760 0.0975 .
Typecomedy:scale(AIns_onset) 0.53383 0.26202 2.037 0.0585 .
Typecomedy:scale(MPFC_onset) -0.31756 0.22934 -1.385 0.1852
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.3864 on 16 degrees of freedom
Multiple R-squared: 0.8961, Adjusted R-squared: 0.8117
F-statistic: 10.62 on 13 and 16 DF, p-value: 1.587e-05
R2m R2c
[1,] 0.8263552 0.8263552
[1] 39.21994



M10: Neural middle data alone
Call:
lm(formula = log(Gross_US_M1) ~ Type + +scale(NAcc_middle) +
scale(AIns_middle) + scale(MPFC_middle) + Type:scale(NAcc_middle) +
Type:scale(AIns_middle) + Type:scale(MPFC_middle), data = AllSubs_NeuralActivation %>%
mutate(Type = factor(Type, levels = c("horror", "comedy"))))
Residuals:
Min 1Q Median 3Q Max
-1.34877 -0.46630 0.05791 0.35276 1.35943
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 17.54254 0.26717 65.661 <2e-16 ***
Typecomedy -0.22617 0.36944 -0.612 0.5467
scale(NAcc_middle) -0.23600 0.30363 -0.777 0.4453
scale(AIns_middle) -0.02164 0.26157 -0.083 0.9348
scale(MPFC_middle) -0.32698 0.23354 -1.400 0.1754
Typecomedy:scale(NAcc_middle) -0.24320 0.37827 -0.643 0.5269
Typecomedy:scale(AIns_middle) 0.76464 0.41771 1.831 0.0807 .
Typecomedy:scale(MPFC_middle) 0.61956 0.34308 1.806 0.0846 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.7989 on 22 degrees of freedom
Multiple R-squared: 0.3893, Adjusted R-squared: 0.195
F-statistic: 2.003 on 7 and 22 DF, p-value: 0.1008
R2m R2c
[1,] 0.3259475 0.3259475
[1] 80.35859



M11: Neural middle data + affective data + behavioral data
Call:
lm(formula = log(Gross_US_M1) ~ Type + scale(Theaters_US_M1) +
scale(Pos_arousal_scaled) + scale(Neg_arousal_scaled) + scale(NAcc_middle) +
scale(AIns_middle) + scale(MPFC_middle) + Type:scale(Theaters_US_M1) +
Type:scale(Pos_arousal_scaled) + Type:scale(Neg_arousal_scaled) +
Type:scale(NAcc_middle) + Type:scale(AIns_middle) + Type:scale(MPFC_middle),
data = AllSubs_NeuralActivation %>% mutate(Type = factor(Type,
levels = c("horror", "comedy"))))
Residuals:
Min 1Q Median 3Q Max
-0.56344 -0.22727 -0.01317 0.23050 0.83789
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 16.76646 0.41163 40.732 < 2e-16 ***
Typecomedy -0.12802 0.63884 -0.200 0.843697
scale(Theaters_US_M1) 1.19746 0.29167 4.106 0.000827 ***
scale(Pos_arousal_scaled) -0.38338 0.27752 -1.381 0.186132
scale(Neg_arousal_scaled) -0.01356 0.28656 -0.047 0.962832
scale(NAcc_middle) 0.20506 0.22071 0.929 0.366648
scale(AIns_middle) 0.10961 0.15521 0.706 0.490226
scale(MPFC_middle) 0.12013 0.16695 0.720 0.482197
Typecomedy:scale(Theaters_US_M1) -0.60179 0.31897 -1.887 0.077485 .
Typecomedy:scale(Pos_arousal_scaled) 0.46453 0.32517 1.429 0.172355
Typecomedy:scale(Neg_arousal_scaled) -0.63757 0.70604 -0.903 0.379907
Typecomedy:scale(NAcc_middle) -0.32543 0.26528 -1.227 0.237669
Typecomedy:scale(AIns_middle) 0.10602 0.32074 0.331 0.745287
Typecomedy:scale(MPFC_middle) -0.02328 0.23194 -0.100 0.921293
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.4579 on 16 degrees of freedom
Multiple R-squared: 0.8541, Adjusted R-squared: 0.7356
F-statistic: 7.205 on 13 and 16 DF, p-value: 0.0001909
R2m R2c
[1,] 0.7635821 0.7635821
[1] 49.40732



M12: Neural offset data alone
Call:
lm(formula = log(Gross_US_M1) ~ Type + +scale(NAcc_offset) +
scale(AIns_offset) + scale(MPFC_offset) + Type:scale(NAcc_offset) +
Type:scale(AIns_offset) + Type:scale(MPFC_offset), data = AllSubs_NeuralActivation %>%
mutate(Type = factor(Type, levels = c("horror", "comedy"))))
Residuals:
Min 1Q Median 3Q Max
-1.68479 -0.52415 -0.00219 0.37082 1.68291
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 17.38774 0.25875 67.199 <2e-16 ***
Typecomedy -0.46246 0.36823 -1.256 0.222
scale(NAcc_offset) -0.25394 0.26854 -0.946 0.355
scale(AIns_offset) 0.14645 0.24484 0.598 0.556
scale(MPFC_offset) 0.29161 0.36812 0.792 0.437
Typecomedy:scale(NAcc_offset) 0.08375 0.42881 0.195 0.847
Typecomedy:scale(AIns_offset) -0.35390 0.45922 -0.771 0.449
Typecomedy:scale(MPFC_offset) -0.52509 0.43920 -1.196 0.245
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.8935 on 22 degrees of freedom
Multiple R-squared: 0.236, Adjusted R-squared: -0.007119
F-statistic: 0.9707 on 7 and 22 DF, p-value: 0.4762
R2m R2c
[1,] 0.1898313 0.1898313
[1] 87.07755



M13: Neural offset data + affective data + behavioral data
Call:
lm(formula = log(Gross_US_M1) ~ Type + scale(Theaters_US_M1) +
scale(Pos_arousal_scaled) + scale(Neg_arousal_scaled) + scale(NAcc_offset) +
scale(AIns_offset) + scale(MPFC_offset) + Type:scale(Theaters_US_M1) +
Type:scale(Pos_arousal_scaled) + Type:scale(Neg_arousal_scaled) +
Type:scale(NAcc_offset) + Type:scale(AIns_offset) + Type:scale(MPFC_offset),
data = AllSubs_NeuralActivation %>% mutate(Type = factor(Type,
levels = c("horror", "comedy"))))
Residuals:
Min 1Q Median 3Q Max
-0.70359 -0.25579 -0.00128 0.23431 0.90958
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 16.99216 0.48505 35.031 < 2e-16 ***
Typecomedy -0.33549 0.69805 -0.481 0.63729
scale(Theaters_US_M1) 1.03416 0.34782 2.973 0.00897 **
scale(Pos_arousal_scaled) -0.27465 0.37154 -0.739 0.47048
scale(Neg_arousal_scaled) -0.05170 0.48217 -0.107 0.91594
scale(NAcc_offset) -0.02308 0.15177 -0.152 0.88103
scale(AIns_offset) 0.15293 0.16318 0.937 0.36259
scale(MPFC_offset) -0.13002 0.37376 -0.348 0.73247
Typecomedy:scale(Theaters_US_M1) -0.34235 0.36972 -0.926 0.36821
Typecomedy:scale(Pos_arousal_scaled) 0.40135 0.40090 1.001 0.33166
Typecomedy:scale(Neg_arousal_scaled) -0.53165 0.75770 -0.702 0.49297
Typecomedy:scale(NAcc_offset) 0.01871 0.23753 0.079 0.93819
Typecomedy:scale(AIns_offset) 0.01262 0.27181 0.046 0.96354
Typecomedy:scale(MPFC_offset) 0.10923 0.39725 0.275 0.78687
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.4701 on 16 degrees of freedom
Multiple R-squared: 0.8462, Adjusted R-squared: 0.7213
F-statistic: 6.772 on 13 and 16 DF, p-value: 0.0002785
R2m R2c
[1,] 0.7522186 0.7522186
[1] 50.98713



M14: Sequence Model
Call:
lm(formula = log(Gross_US_M1) ~ Type + scale(Theaters_US_M1) +
scale(NAcc_onset) + scale(AIns_middle) + scale(MPFC_offset) +
Type:scale(NAcc_onset) + Type:scale(AIns_middle) + Type:scale(MPFC_offset),
data = AllSubs_NeuralActivation %>% mutate(Type = factor(Type,
levels = c("horror", "comedy"))))
Residuals:
Min 1Q Median 3Q Max
-0.51548 -0.28740 -0.01475 0.22436 0.71228
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 17.14747 0.13408 127.894 < 2e-16 ***
Typecomedy 0.08844 0.18304 0.483 0.63398
scale(Theaters_US_M1) 0.75017 0.09635 7.786 1.27e-07 ***
scale(NAcc_onset) -0.45970 0.15936 -2.885 0.00887 **
scale(AIns_middle) 0.27372 0.13328 2.054 0.05267 .
scale(MPFC_offset) 0.16114 0.18491 0.871 0.39336
Typecomedy:scale(NAcc_onset) 0.57168 0.19161 2.984 0.00708 **
Typecomedy:scale(AIns_middle) -0.20753 0.20318 -1.021 0.31867
Typecomedy:scale(MPFC_offset) -0.11575 0.21721 -0.533 0.59970
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.4037 on 21 degrees of freedom
Multiple R-squared: 0.8511, Adjusted R-squared: 0.7944
F-statistic: 15.01 on 8 and 21 DF, p-value: 4.313e-07
R2m R2c
[1,] 0.8054243 0.8054243
[1] 40.01623
M15: Sequence Model 2
Call:
lm(formula = log(Gross_US_M1) ~ Type + scale(Theaters_US_M1) +
scale(Pos_arousal_scaled) + scale(Neg_arousal_scaled) + scale(NAcc_onset) +
scale(AIns_middle) + scale(MPFC_offset) + Type:scale(Theaters_US_M1) +
Type:scale(Pos_arousal_scaled) + Type:scale(Neg_arousal_scaled) +
Type:scale(NAcc_onset) + Type:scale(AIns_middle) + Type:scale(MPFC_offset),
data = AllSubs_NeuralActivation %>% mutate(Type = factor(Type,
levels = c("horror", "comedy"))))
Residuals:
Min 1Q Median 3Q Max
-0.63173 -0.19482 0.00327 0.24375 0.48963
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 17.13406 0.37404 45.808 <2e-16 ***
Typecomedy -0.45999 0.61553 -0.747 0.4657
scale(Theaters_US_M1) 0.77611 0.29808 2.604 0.0192 *
scale(Pos_arousal_scaled) -0.40196 0.31210 -1.288 0.2161
scale(Neg_arousal_scaled) -0.30346 0.38099 -0.796 0.4374
scale(NAcc_onset) -0.48664 0.17457 -2.788 0.0132 *
scale(AIns_middle) 0.27343 0.13904 1.967 0.0668 .
scale(MPFC_offset) 0.39167 0.36012 1.088 0.2929
Typecomedy:scale(Theaters_US_M1) -0.18290 0.32165 -0.569 0.5775
Typecomedy:scale(Pos_arousal_scaled) 0.39576 0.35109 1.127 0.2763
Typecomedy:scale(Neg_arousal_scaled) -0.41113 0.72084 -0.570 0.5764
Typecomedy:scale(NAcc_onset) 0.55595 0.21261 2.615 0.0188 *
Typecomedy:scale(AIns_middle) -0.04367 0.25202 -0.173 0.8646
Typecomedy:scale(MPFC_offset) -0.44611 0.37969 -1.175 0.2572
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.3894 on 16 degrees of freedom
Multiple R-squared: 0.8945, Adjusted R-squared: 0.8087
F-statistic: 10.43 on 13 and 16 DF, p-value: 1.783e-05
R2m R2c
[1,] 0.8238359 0.8238359
[1] 39.68882



LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkKYGBgCgojIExvYWQgbGlicmFyaWVzCmBgYHtyfQpsaWJyYXJ5KGtuaXRyKQpsaWJyYXJ5KHJtZGZvcm1hdHMpCmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShnZ3B1YnIpCmxpYnJhcnkoR0dhbGx5KQpsaWJyYXJ5KGNhcikKYGBgCgoKYGBge3IsIHdhcm5pbmcgPSBGQUxTRSwgbWVzc2FnZSA9IEZBTFNFfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShsbWU0KQpsaWJyYXJ5KGxtZXJUZXN0KQpsaWJyYXJ5KCJNdU1JbiIpCmxpYnJhcnkobG10ZXN0KQpsaWJyYXJ5KGJvb3QpCmBgYAoKIyBSZWFkIGRhdGFzZXRzCmBgYHtyfQpBbGxTdWJzX05ldXJhbEFjdGl2YXRpb24gPC0gcmVhZC5jc3YoJy9Vc2Vycy9sdWlzYWx2YXJlei9Eb2N1bWVudHMvR2l0SHViL1JNX1RoZXNpc19OZXVyb2ZvcmVjYXN0aW5nL1Byb2Nlc3NlZERhdGEvQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uX0FnZ3JlZ2F0ZV9Db21iaW5lZF9jbGVhbi5jc3YnKQoKQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uX0NvbWVkeSA8LSByZWFkLmNzdignL1VzZXJzL2x1aXNhbHZhcmV6L0RvY3VtZW50cy9HaXRIdWIvUk1fVGhlc2lzX05ldXJvZm9yZWNhc3RpbmcvUHJvY2Vzc2VkRGF0YS9BbGxTdWJzX05ldXJhbEFjdGl2YXRpb25fQWdncmVnYXRlX0NvbWJpbmVkX0NvbWVkeV9jbGVhbi5jc3YnKQoKQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uX0hvcnJvciA8LSByZWFkLmNzdignL1VzZXJzL2x1aXNhbHZhcmV6L0RvY3VtZW50cy9HaXRIdWIvUk1fVGhlc2lzX05ldXJvZm9yZWNhc3RpbmcvUHJvY2Vzc2VkRGF0YS9BbGxTdWJzX05ldXJhbEFjdGl2YXRpb25fQWdncmVnYXRlX0NvbWJpbmVkX0hvcnJvcl9jbGVhbi5jc3YnKQoKYGBgCgoKIyBDcmVhdGUgZGF0YSBmcmFtZXMgZm9yIGVhY2ggbW9kZWwuCmBgYHtyfQojIERlZmluZSBhZ2dyZWdhdGUgdmFyaWFibGVzLiAKQWxsX0dyb3NzX00xX2xvZyA8LSBsb2coQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uJEdyb3NzX1VTX00xKQpBbGxfVGhlYXRlcnNfTTEgPC0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uJFRoZWF0ZXJzX1VTX00xCgpDb21lZHlfR3Jvc3NfTTFfbG9nIDwtIGxvZyhBbGxTdWJzX05ldXJhbEFjdGl2YXRpb25fQ29tZWR5JEdyb3NzX1VTX00xKQpDb21lZHlfVGhlYXRlcnNfTTEgPC0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uX0NvbWVkeSRUaGVhdGVyc19VU19NMQoKSG9ycm9yX0dyb3NzX00xX2xvZyA8LSBsb2coQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uX0hvcnJvciRHcm9zc19VU19NMSkKSG9ycm9yX1RoZWF0ZXJzX00xIDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbl9Ib3Jyb3IkVGhlYXRlcnNfVVNfTTEKICAKTTFfZGYgPC0gZGF0YS5mcmFtZShBbGxfR3Jvc3NfTTFfbG9nLCBBbGxfVGhlYXRlcnNfTTEpIApNMV9DX2RmIDwtIGRhdGEuZnJhbWUoQ29tZWR5X0dyb3NzX00xX2xvZywgQ29tZWR5X1RoZWF0ZXJzX00xKSAKTTFfSF9kZiA8LSBkYXRhLmZyYW1lKEhvcnJvcl9Hcm9zc19NMV9sb2csIEhvcnJvcl9UaGVhdGVyc19NMSkgCgojIERlZmluZSBhZmZlY3QgdmFyaWFibGVzLgpBbGxfUEEgPC0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uJFBvc19hcm91c2FsX3NjYWxlZApBbGxfTkEgPC0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uJE5lZ19hcm91c2FsX3NjYWxlZAoKQ29tZWR5X1BBIDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbl9Db21lZHkkUG9zX2Fyb3VzYWxfc2NhbGVkCkNvbWVkeV9OQSA8LSBBbGxTdWJzX05ldXJhbEFjdGl2YXRpb25fQ29tZWR5JE5lZ19hcm91c2FsX3NjYWxlZAoKSG9ycm9yX1BBIDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbl9Ib3Jyb3IkUG9zX2Fyb3VzYWxfc2NhbGVkCkhvcnJvcl9OQSA8LSBBbGxTdWJzX05ldXJhbEFjdGl2YXRpb25fSG9ycm9yJE5lZ19hcm91c2FsX3NjYWxlZAoKTTJfZGYgPC0gZGF0YS5mcmFtZShBbGxfR3Jvc3NfTTFfbG9nLCBBbGxfUEEsIEFsbF9OQSkgCk0yX0NfZGYgPC0gZGF0YS5mcmFtZShDb21lZHlfR3Jvc3NfTTFfbG9nLCBDb21lZHlfUEEsIENvbWVkeV9OQSkgCk0yX0hfZGYgPC0gZGF0YS5mcmFtZShIb3Jyb3JfR3Jvc3NfTTFfbG9nLCBIb3Jyb3JfUEEsIEhvcnJvcl9OQSkgCmBgYAoKYGBge3J9CiMgRGVmaW5lIElTQyB2YXJpYWJsZXMuIApBbGxfTkFjY19JU0MgPC0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uJE5BY2NfSVNDCkFsbF9BSW5zX0lTQyA8LSBBbGxTdWJzX05ldXJhbEFjdGl2YXRpb24kQUluc19JU0MKQWxsX01QRkNfSVNDIDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbiRNUEZDX0lTQwoKQ29tZWR5X05BY2NfSVNDIDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbl9Db21lZHkkTkFjY19JU0MKQ29tZWR5X0FJbnNfSVNDIDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbl9Db21lZHkkQUluc19JU0MKQ29tZWR5X01QRkNfSVNDIDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbl9Db21lZHkkTVBGQ19JU0MKCkhvcnJvcl9OQWNjX0lTQyA8LSBBbGxTdWJzX05ldXJhbEFjdGl2YXRpb25fSG9ycm9yJE5BY2NfSVNDCkhvcnJvcl9BSW5zX0lTQyA8LSBBbGxTdWJzX05ldXJhbEFjdGl2YXRpb25fSG9ycm9yJEFJbnNfSVNDCkhvcnJvcl9NUEZDX0lTQyA8LSBBbGxTdWJzX05ldXJhbEFjdGl2YXRpb25fSG9ycm9yJE1QRkNfSVNDCgojIERlZmluZSBtb2RlbHMuIApNNF9kZiA8LSBkYXRhLmZyYW1lKEFsbF9OQWNjX0lTQywgQWxsX0FJbnNfSVNDLCBBbGxfTVBGQ19JU0MpIApNNF9DX2RmIDwtIGRhdGEuZnJhbWUoQ29tZWR5X05BY2NfSVNDLCBDb21lZHlfQUluc19JU0MsIENvbWVkeV9NUEZDX0lTQykgCk00X0hfZGYgPC0gZGF0YS5mcmFtZShIb3Jyb3JfTkFjY19JU0MsIEhvcnJvcl9BSW5zX0lTQywgSG9ycm9yX01QRkNfSVNDKSAKCk01X2RmIDwtIGRhdGEuZnJhbWUoQWxsX0dyb3NzX00xX2xvZywgQWxsX1BBLCBBbGxfTkEsIEFsbF9OQWNjX0lTQywgQWxsX0FJbnNfSVNDLCBBbGxfTVBGQ19JU0MpIApNNV9DX2RmIDwtIGRhdGEuZnJhbWUoQ29tZWR5X0dyb3NzX00xX2xvZywgQ29tZWR5X1BBLCBDb21lZHlfTkEsIENvbWVkeV9OQWNjX0lTQywgQ29tZWR5X0FJbnNfSVNDLCBDb21lZHlfTVBGQ19JU0MpIApNNV9IX2RmIDwtIGRhdGEuZnJhbWUoSG9ycm9yX0dyb3NzX00xX2xvZywgSG9ycm9yX1BBLCBIb3Jyb3JfTkEsIEhvcnJvcl9OQWNjX0lTQywgSG9ycm9yX0FJbnNfSVNDLCBIb3Jyb3JfTVBGQ19JU0MpIApgYGAKCmBgYHtyfQojIERlZmluZSB3aG9sZSB2YXJpYWJsZXMuIApBbGxfTkFjY193aG9sZSA8LSBBbGxTdWJzX05ldXJhbEFjdGl2YXRpb24kTkFjY193aG9sZQpBbGxfQUluc193aG9sZSA8LSBBbGxTdWJzX05ldXJhbEFjdGl2YXRpb24kQUluc193aG9sZQpBbGxfTVBGQ193aG9sZSA8LSBBbGxTdWJzX05ldXJhbEFjdGl2YXRpb24kTVBGQ193aG9sZQoKQ29tZWR5X05BY2Nfd2hvbGUgPC0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uX0NvbWVkeSROQWNjX3dob2xlCkNvbWVkeV9BSW5zX3dob2xlIDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbl9Db21lZHkkQUluc193aG9sZQpDb21lZHlfTVBGQ193aG9sZSA8LSBBbGxTdWJzX05ldXJhbEFjdGl2YXRpb25fQ29tZWR5JE1QRkNfd2hvbGUKCkhvcnJvcl9OQWNjX3dob2xlIDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbl9Ib3Jyb3IkTkFjY193aG9sZQpIb3Jyb3JfQUluc193aG9sZSA8LSBBbGxTdWJzX05ldXJhbEFjdGl2YXRpb25fSG9ycm9yJEFJbnNfd2hvbGUKSG9ycm9yX01QRkNfd2hvbGUgPC0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uX0hvcnJvciRNUEZDX3dob2xlCgojIERlZmluZSBtb2RlbHMuIApNNl9kZiA8LSBkYXRhLmZyYW1lKEFsbF9OQWNjX3dob2xlLCBBbGxfQUluc193aG9sZSwgQWxsX01QRkNfd2hvbGUpIApNNl9DX2RmIDwtIGRhdGEuZnJhbWUoQ29tZWR5X05BY2Nfd2hvbGUsIENvbWVkeV9BSW5zX3dob2xlLCBDb21lZHlfTVBGQ193aG9sZSkgCk02X0hfZGYgPC0gZGF0YS5mcmFtZShIb3Jyb3JfTkFjY193aG9sZSwgSG9ycm9yX0FJbnNfd2hvbGUsIEhvcnJvcl9NUEZDX3dob2xlKSAKCk03X2RmIDwtIGRhdGEuZnJhbWUoQWxsX0dyb3NzX00xX2xvZywgQWxsX1BBLCBBbGxfTkEsIEFsbF9OQWNjX3dob2xlLCBBbGxfQUluc193aG9sZSwgQWxsX01QRkNfd2hvbGUpIApNN19DX2RmIDwtIGRhdGEuZnJhbWUoQ29tZWR5X0dyb3NzX00xX2xvZywgQ29tZWR5X1BBLCBDb21lZHlfTkEsIENvbWVkeV9OQWNjX3dob2xlLAogICAgICAgICAgICAgICAgICAgICAgQ29tZWR5X0FJbnNfd2hvbGUsIENvbWVkeV9NUEZDX3dob2xlKSAKTTdfSF9kZiA8LSBkYXRhLmZyYW1lKEhvcnJvcl9Hcm9zc19NMV9sb2csIEhvcnJvcl9QQSwgSG9ycm9yX05BLCBIb3Jyb3JfTkFjY193aG9sZSwKICAgICAgICAgICAgICAgICAgICAgIEhvcnJvcl9BSW5zX3dob2xlLCBIb3Jyb3JfTVBGQ193aG9sZSkgCmBgYAoKYGBge3J9CiMgRGVmaW5lIG9uc2V0IHZhcmlhYmxlcy4gCkFsbF9OQWNjX29uc2V0IDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbiROQWNjX29uc2V0CkFsbF9BSW5zX29uc2V0IDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbiRBSW5zX29uc2V0CkFsbF9NUEZDX29uc2V0IDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbiRNUEZDX29uc2V0CgpDb21lZHlfTkFjY19vbnNldCA8LSBBbGxTdWJzX05ldXJhbEFjdGl2YXRpb25fQ29tZWR5JE5BY2Nfb25zZXQKQ29tZWR5X0FJbnNfb25zZXQgPC0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uX0NvbWVkeSRBSW5zX29uc2V0CkNvbWVkeV9NUEZDX29uc2V0IDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbl9Db21lZHkkTVBGQ19vbnNldAoKSG9ycm9yX05BY2Nfb25zZXQgPC0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uX0hvcnJvciROQWNjX29uc2V0CkhvcnJvcl9BSW5zX29uc2V0IDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbl9Ib3Jyb3IkQUluc19vbnNldApIb3Jyb3JfTVBGQ19vbnNldCA8LSBBbGxTdWJzX05ldXJhbEFjdGl2YXRpb25fSG9ycm9yJE1QRkNfb25zZXQKCiMgRGVmaW5lIG1vZGVscy4gCk04X2RmIDwtIGRhdGEuZnJhbWUoQWxsX05BY2Nfb25zZXQsIEFsbF9BSW5zX29uc2V0LCBBbGxfTVBGQ19vbnNldCkgCk04X0NfZGYgPC0gZGF0YS5mcmFtZShDb21lZHlfTkFjY19vbnNldCwgQ29tZWR5X0FJbnNfb25zZXQsIENvbWVkeV9NUEZDX29uc2V0KSAKTThfSF9kZiA8LSBkYXRhLmZyYW1lKEhvcnJvcl9OQWNjX29uc2V0LCBIb3Jyb3JfQUluc19vbnNldCwgSG9ycm9yX01QRkNfb25zZXQpIAoKTTlfZGYgPC0gZGF0YS5mcmFtZShBbGxfR3Jvc3NfTTFfbG9nLCBBbGxfUEEsIEFsbF9OQSwgQWxsX05BY2Nfb25zZXQsIEFsbF9BSW5zX29uc2V0LCBBbGxfTVBGQ19vbnNldCkgCk05X0NfZGYgPC0gZGF0YS5mcmFtZShDb21lZHlfR3Jvc3NfTTFfbG9nLCBDb21lZHlfUEEsIENvbWVkeV9OQSwgQ29tZWR5X05BY2Nfb25zZXQsCiAgICAgICAgICAgICAgICAgICAgICBDb21lZHlfQUluc19vbnNldCwgQ29tZWR5X01QRkNfb25zZXQpIApNOV9IX2RmIDwtIGRhdGEuZnJhbWUoSG9ycm9yX0dyb3NzX00xX2xvZywgSG9ycm9yX1BBLCBIb3Jyb3JfTkEsIEhvcnJvcl9OQWNjX29uc2V0LAogICAgICAgICAgICAgICAgICAgICAgSG9ycm9yX0FJbnNfb25zZXQsIEhvcnJvcl9NUEZDX29uc2V0KSAKYGBgCgpgYGB7cn0KIyBEZWZpbmUgbWlkZGxlIHZhcmlhYmxlcy4gCkFsbF9OQWNjX21pZGRsZSA8LSBBbGxTdWJzX05ldXJhbEFjdGl2YXRpb24kTkFjY19taWRkbGUKQWxsX0FJbnNfbWlkZGxlIDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbiRBSW5zX21pZGRsZQpBbGxfTVBGQ19taWRkbGUgPC0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uJE1QRkNfbWlkZGxlCgpDb21lZHlfTkFjY19taWRkbGUgPC0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uX0NvbWVkeSROQWNjX21pZGRsZQpDb21lZHlfQUluc19taWRkbGUgPC0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uX0NvbWVkeSRBSW5zX21pZGRsZQpDb21lZHlfTVBGQ19taWRkbGUgPC0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uX0NvbWVkeSRNUEZDX21pZGRsZQoKSG9ycm9yX05BY2NfbWlkZGxlIDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbl9Ib3Jyb3IkTkFjY19taWRkbGUKSG9ycm9yX0FJbnNfbWlkZGxlIDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbl9Ib3Jyb3IkQUluc19taWRkbGUKSG9ycm9yX01QRkNfbWlkZGxlIDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbl9Ib3Jyb3IkTVBGQ19taWRkbGUKCiMgRGVmaW5lIG1vZGVscy4gCk0xMF9kZiA8LSBkYXRhLmZyYW1lKEFsbF9OQWNjX21pZGRsZSwgQWxsX0FJbnNfbWlkZGxlLCBBbGxfTVBGQ19taWRkbGUpIApNMTBfQ19kZiA8LSBkYXRhLmZyYW1lKENvbWVkeV9OQWNjX21pZGRsZSwgQ29tZWR5X0FJbnNfbWlkZGxlLCBDb21lZHlfTVBGQ19taWRkbGUpIApNMTBfSF9kZiA8LSBkYXRhLmZyYW1lKEhvcnJvcl9OQWNjX21pZGRsZSwgSG9ycm9yX0FJbnNfbWlkZGxlLCBIb3Jyb3JfTVBGQ19taWRkbGUpIAoKTTExX2RmIDwtIGRhdGEuZnJhbWUoQWxsX0dyb3NzX00xX2xvZywgQWxsX1BBLCBBbGxfTkEsIEFsbF9OQWNjX21pZGRsZSwgQWxsX0FJbnNfbWlkZGxlLCBBbGxfTVBGQ19taWRkbGUpIApNMTFfQ19kZiA8LSBkYXRhLmZyYW1lKENvbWVkeV9Hcm9zc19NMV9sb2csIENvbWVkeV9QQSwgQ29tZWR5X05BLCBDb21lZHlfTkFjY19taWRkbGUsCiAgICAgICAgICAgICAgICAgICAgICBDb21lZHlfQUluc19taWRkbGUsIENvbWVkeV9NUEZDX21pZGRsZSkgCk0xMV9IX2RmIDwtIGRhdGEuZnJhbWUoSG9ycm9yX0dyb3NzX00xX2xvZywgSG9ycm9yX1BBLCBIb3Jyb3JfTkEsIEhvcnJvcl9OQWNjX21pZGRsZSwKICAgICAgICAgICAgICAgICAgICAgIEhvcnJvcl9BSW5zX21pZGRsZSwgSG9ycm9yX01QRkNfbWlkZGxlKSAKYGBgCgpgYGB7cn0KIyBEZWZpbmUgb2Zmc2V0IHZhcmlhYmxlcy4gCkFsbF9OQWNjX29mZnNldCA8LSBBbGxTdWJzX05ldXJhbEFjdGl2YXRpb24kTkFjY19vZmZzZXQKQWxsX0FJbnNfb2Zmc2V0IDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbiRBSW5zX29mZnNldApBbGxfTVBGQ19vZmZzZXQgPC0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uJE1QRkNfb2Zmc2V0CgpDb21lZHlfTkFjY19vZmZzZXQgPC0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uX0NvbWVkeSROQWNjX29mZnNldApDb21lZHlfQUluc19vZmZzZXQgPC0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uX0NvbWVkeSRBSW5zX29mZnNldApDb21lZHlfTVBGQ19vZmZzZXQgPC0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uX0NvbWVkeSRNUEZDX29mZnNldAoKSG9ycm9yX05BY2Nfb2Zmc2V0IDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbl9Ib3Jyb3IkTkFjY19vZmZzZXQKSG9ycm9yX0FJbnNfb2Zmc2V0IDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbl9Ib3Jyb3IkQUluc19vZmZzZXQKSG9ycm9yX01QRkNfb2Zmc2V0IDwtIEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbl9Ib3Jyb3IkTVBGQ19vZmZzZXQKCiMgRGVmaW5lIG1vZGVscy4gCk0xMl9kZiA8LSBkYXRhLmZyYW1lKEFsbF9OQWNjX29mZnNldCwgQWxsX0FJbnNfb2Zmc2V0LCBBbGxfTVBGQ19vZmZzZXQpIApNMTJfQ19kZiA8LSBkYXRhLmZyYW1lKENvbWVkeV9OQWNjX29mZnNldCwgQ29tZWR5X0FJbnNfb2Zmc2V0LCBDb21lZHlfTVBGQ19vZmZzZXQpIApNMTJfSF9kZiA8LSBkYXRhLmZyYW1lKEhvcnJvcl9OQWNjX29mZnNldCwgSG9ycm9yX0FJbnNfb2Zmc2V0LCBIb3Jyb3JfTVBGQ19vZmZzZXQpIAoKTTEzX2RmIDwtIGRhdGEuZnJhbWUoQWxsX0dyb3NzX00xX2xvZywgQWxsX1BBLCBBbGxfTkEsIEFsbF9OQWNjX29mZnNldCwgQWxsX0FJbnNfb2Zmc2V0LCBBbGxfTVBGQ19vZmZzZXQpIApNMTNfQ19kZiA8LSBkYXRhLmZyYW1lKENvbWVkeV9Hcm9zc19NMV9sb2csIENvbWVkeV9QQSwgQ29tZWR5X05BLCBDb21lZHlfTkFjY19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICBDb21lZHlfQUluc19vZmZzZXQsIENvbWVkeV9NUEZDX29mZnNldCkgCk0xM19IX2RmIDwtIGRhdGEuZnJhbWUoSG9ycm9yX0dyb3NzX00xX2xvZywgSG9ycm9yX1BBLCBIb3Jyb3JfTkEsIEhvcnJvcl9OQWNjX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgIEhvcnJvcl9BSW5zX29mZnNldCwgSG9ycm9yX01QRkNfb2Zmc2V0KSAKYGBgCgpgYGB7cn0KCk0xNF9kZiA8LSBkYXRhLmZyYW1lKEFsbF9Hcm9zc19NMV9sb2csIEFsbF9QQSwgQWxsX05BLCBBbGxfTkFjY19vbnNldCwgQWxsX0FJbnNfbWlkZGxlLCBBbGxfTVBGQ19vZmZzZXQpIApNMTRfQ19kZiA8LSBkYXRhLmZyYW1lKENvbWVkeV9Hcm9zc19NMV9sb2csIENvbWVkeV9QQSwgQ29tZWR5X05BLCBDb21lZHlfTkFjY19vbnNldCwKICAgICAgICAgICAgICAgICAgICAgIENvbWVkeV9BSW5zX21pZGRsZSwgQ29tZWR5X01QRkNfb2Zmc2V0KSAKTTE0X0hfZGYgPC0gZGF0YS5mcmFtZShIb3Jyb3JfR3Jvc3NfTTFfbG9nLCBIb3Jyb3JfUEEsIEhvcnJvcl9OQSwgSG9ycm9yX05BY2Nfb25zZXQsCiAgICAgICAgICAgICAgICAgICAgICBIb3Jyb3JfQUluc19taWRkbGUsIEhvcnJvcl9NUEZDX29mZnNldCkgCmBgYAoKIyBOb3RlczogCiAtIEhhdmUgbm90ZSByZW1vdmVkIG91dGxpZXJzIGZyb20gZGF0YS4KCiMgTmV1cm9mb3JlY2FzdGluZzogRmlyc3QgTW9udGggVVMuCiMjIE0xOiBBZ2dyZWdzdGUgZGF0YSAKYGBge3IsIGVjaG8gPSBGQUxTRX0KTTEgPC0gbG0obG9nKEdyb3NzX1VTX00xKSB+IFR5cGUgKwogICAgICAgICArIHNjYWxlKFRoZWF0ZXJzX1VTX00xKQogICAgICAgICAjKyBXZWVrc19hdmdfcGVyX3RoZWF0ZXIKICAgICAgICAgKyBUeXBlOnNjYWxlKFRoZWF0ZXJzX1VTX00xKQogICAgICAgICAsIGRhdGEgPSBBbGxTdWJzX05ldXJhbEFjdGl2YXRpb24gJT4lIG11dGF0ZShUeXBlID0gZmFjdG9yKFR5cGUsIGxldmVscyA9IGMoImhvcnJvciIsICJjb21lZHkiKSkpKQpzdW1tYXJ5KE0xKQpyLnNxdWFyZWRHTE1NKE0xKQpBSUMoTTEpCgojIENyZWF0ZSBwYWlycyBwbG90LiAKZ2dwYWlycyhNMV9kZikKZ2dwYWlycyhNMV9DX2RmKQpnZ3BhaXJzKE0xX0hfZGYpCmBgYAoKCgojIyBNMjogQWZmZWN0aXZlIGRhdGEgYWxvbmUKYGBge3IsIGVjaG8gPSBGQUxTRX0KTTIgPC0gbG0obG9nKEdyb3NzX1VTX00xKSB+IFR5cGUgCiAgICAgICAgICsgc2NhbGUoUG9zX2Fyb3VzYWxfc2NhbGVkKSAKICAgICAgICAgKyBzY2FsZShOZWdfYXJvdXNhbF9zY2FsZWQpCiAgICAgICAgICsgVHlwZTpzY2FsZShQb3NfYXJvdXNhbF9zY2FsZWQpCiAgICAgICAgICsgVHlwZTpzY2FsZShOZWdfYXJvdXNhbF9zY2FsZWQpCiAgICAgICAgICwgZGF0YSA9IEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbiAlPiUgbXV0YXRlKFR5cGUgPSBmYWN0b3IoVHlwZSwgbGV2ZWxzID0gYygiaG9ycm9yIiwgImNvbWVkeSIpKSkpCnN1bW1hcnkoTTIpCnIuc3F1YXJlZEdMTU0oTTIpCkFJQyhNMikKCiMgQ3JlYXRlIHBhaXJzIHBsb3QuIApnZ3BhaXJzKE0yX2RmKQpnZ3BhaXJzKE0yX0NfZGYpCmdncGFpcnMoTTJfSF9kZikKYGBgCgojIyBNMzogQWdncmVnYXRlIGFuZCBhZmZlY3RpdmUgZGF0YSBhbG9uZQpgYGB7ciwgZWNobyA9IEZBTFNFfQpNMyA8LSBsbShsb2coR3Jvc3NfVVNfTTEpIH4gVHlwZSAKICAgICAgICAgIysgc2NhbGUoVGhlYXRlcnNfVVNfTTEpCiAgICAgICAgICsgc2NhbGUoUG9zX2Fyb3VzYWxfc2NhbGVkKSAKICAgICAgICAgKyBzY2FsZShOZWdfYXJvdXNhbF9zY2FsZWQpCiAgICAgICAgICMrIFR5cGU6c2NhbGUoVGhlYXRlcnNfVVNfTTEpCiAgICAgICAgICsgVHlwZTpzY2FsZShQb3NfYXJvdXNhbF9zY2FsZWQpCiAgICAgICAgICsgVHlwZTpzY2FsZShOZWdfYXJvdXNhbF9zY2FsZWQpCiAgICAgICAgICwgZGF0YSA9IEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbiAlPiUgbXV0YXRlKFR5cGUgPSBmYWN0b3IoVHlwZSwgbGV2ZWxzID0gYygiaG9ycm9yIiwgImNvbWVkeSIpKSkpCnN1bW1hcnkoTTMpCnIuc3F1YXJlZEdMTU0oTTMpCkFJQyhNMykKYGBgCgojIE00OiBJU0MgZGF0YSBhbG9uZQpgYGB7ciwgZWNobyA9IEZBTFNFfQpNNCA8LSBsbShsb2coR3Jvc3NfVVNfTTEpIH4gVHlwZSArIAogICAgICAgICAgICAgICsgc2NhbGUoTkFjY19JU0MpIAogICAgICAgICAgICAgICsgc2NhbGUoQUluc19JU0MpIAogICAgICAgICAgICAgICsgc2NhbGUoTVBGQ19JU0MpIAogICAgICAgICAgICAgICsgVHlwZTpzY2FsZShOQWNjX0lTQykgCiAgICAgICAgICAgICAgKyBUeXBlOnNjYWxlKEFJbnNfSVNDKSAKICAgICAgICAgICAgICArIFR5cGU6c2NhbGUoTVBGQ19JU0MpIAogICAgICAgICAgICAgICwgZGF0YSA9IEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbiAlPiUgbXV0YXRlKFR5cGUgPSBmYWN0b3IoVHlwZSwgbGV2ZWxzID0gYygiaG9ycm9yIiwgImNvbWVkeSIpKSkpCnN1bW1hcnkoTTQpCnIuc3F1YXJlZEdMTU0oTTQpCkFJQyhNNCkKCiMgQ3JlYXRlIHBhaXJzIHBsb3QuIApnZ3BhaXJzKE00X2RmKQpnZ3BhaXJzKE00X0NfZGYpCmdncGFpcnMoTTRfSF9kZikKYGBgCgojIE01OiBJU0MgZGF0YSArIGFmZmVjdGl2ZSBkYXRhICsgYmVoYXZpb3JhbCBkYXRhCmBgYHtyLCBlY2hvID0gRkFMU0V9Ck01IDwtIGxtKGxvZyhHcm9zc19VU19NMSkgfiBUeXBlIAogICAgICAgICAgICAgKyBzY2FsZShUaGVhdGVyc19VU19NMSkgCiAgICAgICAgICAgICArIHNjYWxlKFBvc19hcm91c2FsX3NjYWxlZCkgCiAgICAgICAgICAgICArIHNjYWxlKE5lZ19hcm91c2FsX3NjYWxlZCkgIAogICAgICAgICAgICAgIysgc2NhbGUoV19zY29yZV9zY2FsZWQpIAogICAgICAgICAgICAgKyBzY2FsZShOQWNjX0lTQykgCiAgICAgICAgICAgICArIHNjYWxlKEFJbnNfSVNDKSAKICAgICAgICAgICAgICsgc2NhbGUoTVBGQ19JU0MpIAogICAgICAgICAgICAgKyBUeXBlOnNjYWxlKFRoZWF0ZXJzX1VTX00xKSAKICAgICAgICAgICAgICsgVHlwZTpzY2FsZShQb3NfYXJvdXNhbF9zY2FsZWQpCiAgICAgICAgICAgICArIFR5cGU6c2NhbGUoTmVnX2Fyb3VzYWxfc2NhbGVkKQogICAgICAgICAgICAgIysgVHlwZTpzY2FsZShXX3Njb3JlX3NjYWxlZCkKICAgICAgICAgICAgICsgVHlwZTpzY2FsZShOQWNjX0lTQykgCiAgICAgICAgICAgICArIFR5cGU6c2NhbGUoQUluc19JU0MpIAogICAgICAgICAgICAgKyBUeXBlOnNjYWxlKE1QRkNfSVNDKQogICAgICAgICAgICAgLCBkYXRhID0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uICU+JSBtdXRhdGUoVHlwZSA9IGZhY3RvcihUeXBlLCBsZXZlbHMgPSBjKCJob3Jyb3IiLCAiY29tZWR5IikpKSkKc3VtbWFyeShNNSkKci5zcXVhcmVkR0xNTShNNSkKQUlDKE01KQoKIyBDcmVhdGUgcGFpcnMgcGxvdC4gCmdncGFpcnMoTTVfZGYpCmdncGFpcnMoTTVfQ19kZikKZ2dwYWlycyhNNV9IX2RmKQpgYGAKCiMgTTY6IE5ldXJhbCB3aG9sZSBkYXRhIGFsb25lCmBgYHtyLCBlY2hvID0gRkFMU0V9Ck02IDwtIGxtKGxvZyhHcm9zc19VU19NMSkgfiBUeXBlICsgCiAgICAgICAgICAgICAgIysgVGhlYXRlcnNfVVNfVzFfbnVtIAogICAgICAgICAgICAgICsgc2NhbGUoTkFjY193aG9sZSkgCiAgICAgICAgICAgICAgKyBzY2FsZShBSW5zX3dob2xlKSAKICAgICAgICAgICAgICArIHNjYWxlKE1QRkNfd2hvbGUpIAogICAgICAgICAgICAgICsgVHlwZTpzY2FsZShOQWNjX3dob2xlKSAKICAgICAgICAgICAgICArIFR5cGU6c2NhbGUoQUluc193aG9sZSkgCiAgICAgICAgICAgICAgKyBUeXBlOnNjYWxlKE1QRkNfd2hvbGUpIAogICAgICAgICAgICAgICwgZGF0YSA9IEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbiAlPiUgbXV0YXRlKFR5cGUgPSBmYWN0b3IoVHlwZSwgbGV2ZWxzID0gYygiaG9ycm9yIiwgImNvbWVkeSIpKSkpCnN1bW1hcnkoTTYpCnIuc3F1YXJlZEdMTU0oTTYpCkFJQyhNNikKCiMgQ3JlYXRlIHBhaXJzIHBsb3QuIApnZ3BhaXJzKE02X2RmKQpnZ3BhaXJzKE02X0NfZGYpCmdncGFpcnMoTTZfSF9kZikKYGBgCgojIE03OiBOZXVyYWwgd2hvbGUgZGF0YSArIGFmZmVjdGl2ZSBkYXRhICsgYmVoYXZpb3JhbCBkYXRhCmBgYHtyLCBlY2hvID0gRkFMU0V9Ck03IDwtIGxtKGxvZyhHcm9zc19VU19NMSkgfiBUeXBlIAogICAgICAgICAgICAgKyBzY2FsZShUaGVhdGVyc19VU19NMSkKICAgICAgICAgICAgICsgc2NhbGUoUG9zX2Fyb3VzYWxfc2NhbGVkKSAKICAgICAgICAgICAgICsgc2NhbGUoTmVnX2Fyb3VzYWxfc2NhbGVkKSAgCiAgICAgICAgICAgICArIHNjYWxlKE5BY2Nfd2hvbGUpIAogICAgICAgICAgICAgKyBzY2FsZShBSW5zX3dob2xlKSAKICAgICAgICAgICAgICsgc2NhbGUoTVBGQ193aG9sZSkgCiAgICAgICAgICAgICArIFR5cGU6c2NhbGUoVGhlYXRlcnNfVVNfTTEpCiAgICAgICAgICAgICArIFR5cGU6c2NhbGUoUG9zX2Fyb3VzYWxfc2NhbGVkKQogICAgICAgICAgICAgKyBUeXBlOnNjYWxlKE5lZ19hcm91c2FsX3NjYWxlZCkKICAgICAgICAgICAgICsgVHlwZTpzY2FsZShOQWNjX3dob2xlKSAKICAgICAgICAgICAgICsgVHlwZTpzY2FsZShBSW5zX3dob2xlKSAKICAgICAgICAgICAgICsgVHlwZTpzY2FsZShNUEZDX3dob2xlKQogICAgICAgICAgICAgLCBkYXRhID0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uICU+JSBtdXRhdGUoVHlwZSA9IGZhY3RvcihUeXBlLCBsZXZlbHMgPSBjKCJob3Jyb3IiLCAiY29tZWR5IikpKSkKc3VtbWFyeShNNykKci5zcXVhcmVkR0xNTShNNykKQUlDKE03KQoKIyBDcmVhdGUgcGFpcnMgcGxvdC4gCmdncGFpcnMoTTdfZGYpCmdncGFpcnMoTTdfQ19kZikKZ2dwYWlycyhNN19IX2RmKQpgYGAKCiMgTTg6IE5ldXJhbCBvbnNldCBkYXRhIGFsb25lCmBgYHtyLCBlY2hvID0gRkFMU0V9Ck04IDwtIGxtKGxvZyhHcm9zc19VU19NMSkgfiBUeXBlICsgCiAgICAgICAgICAgICAgKyBzY2FsZShOQWNjX29uc2V0KSAKICAgICAgICAgICAgICArIHNjYWxlKEFJbnNfb25zZXQpIAogICAgICAgICAgICAgICsgc2NhbGUoTVBGQ19vbnNldCkgCiAgICAgICAgICAgICAgKyBUeXBlOnNjYWxlKE5BY2Nfb25zZXQpIAogICAgICAgICAgICAgICsgVHlwZTpzY2FsZShBSW5zX29uc2V0KSAKICAgICAgICAgICAgICArIFR5cGU6c2NhbGUoTVBGQ19vbnNldCkgCiAgICAgICAgICAgICAgLCBkYXRhID0gQWxsU3Vic19OZXVyYWxBY3RpdmF0aW9uICU+JSBtdXRhdGUoVHlwZSA9IGZhY3RvcihUeXBlLCBsZXZlbHMgPSBjKCJob3Jyb3IiLCAiY29tZWR5IikpKSkKc3VtbWFyeShNOCkKci5zcXVhcmVkR0xNTShNOCkKQUlDKE04KQoKIyBDcmVhdGUgcGFpcnMgcGxvdC4gCmdncGFpcnMoTThfZGYpCmdncGFpcnMoTThfQ19kZikKZ2dwYWlycyhNOF9IX2RmKQpgYGAKCiMgTTk6IE5ldXJhbCBvbnNldCBkYXRhICsgYWZmZWN0aXZlIGRhdGEgKyBiZWhhdmlvcmFsIGRhdGEKYGBge3IsIGVjaG8gPSBGQUxTRX0KTTkgPC0gbG0obG9nKEdyb3NzX1VTX00xKSB+IFR5cGUgCiAgICAgICAgICAgICArIHNjYWxlKFRoZWF0ZXJzX1VTX00xKQogICAgICAgICAgICAgIysgVG90YWxfd2Vla3MgCiAgICAgICAgICAgICAjKyBXZWVrc19hdmdfcGVyX3RoZWF0ZXIKICAgICAgICAgICAgICsgc2NhbGUoUG9zX2Fyb3VzYWxfc2NhbGVkKSAKICAgICAgICAgICAgICsgc2NhbGUoTmVnX2Fyb3VzYWxfc2NhbGVkKSAgCiAgICAgICAgICAgICAjKyBzY2FsZShXX3Njb3JlX3NjYWxlZCkgCiAgICAgICAgICAgICArIHNjYWxlKE5BY2Nfb25zZXQpIAogICAgICAgICAgICAgKyBzY2FsZShBSW5zX29uc2V0KSAKICAgICAgICAgICAgICsgc2NhbGUoTVBGQ19vbnNldCkgCiAgICAgICAgICAgICArIFR5cGU6c2NhbGUoVGhlYXRlcnNfVVNfTTEpCiAgICAgICAgICAgICArIFR5cGU6c2NhbGUoUG9zX2Fyb3VzYWxfc2NhbGVkKQogICAgICAgICAgICAgKyBUeXBlOnNjYWxlKE5lZ19hcm91c2FsX3NjYWxlZCkKICAgICAgICAgICAgICMrIFR5cGU6c2NhbGUoV19zY29yZV9zY2FsZWQpCiAgICAgICAgICAgICArIFR5cGU6c2NhbGUoTkFjY19vbnNldCkgCiAgICAgICAgICAgICArIFR5cGU6c2NhbGUoQUluc19vbnNldCkgCiAgICAgICAgICAgICArIFR5cGU6c2NhbGUoTVBGQ19vbnNldCkKICAgICAgICAgICAgICwgZGF0YSA9IEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbiAlPiUgbXV0YXRlKFR5cGUgPSBmYWN0b3IoVHlwZSwgbGV2ZWxzID0gYygiaG9ycm9yIiwgImNvbWVkeSIpKSkpCnN1bW1hcnkoTTkpCnIuc3F1YXJlZEdMTU0oTTkpCkFJQyhNOSkKCiMgQ3JlYXRlIHBhaXJzIHBsb3QuIApnZ3BhaXJzKE05X2RmKQpnZ3BhaXJzKE05X0NfZGYpCmdncGFpcnMoTTlfSF9kZikKYGBgCgojIE0xMDogTmV1cmFsIG1pZGRsZSBkYXRhIGFsb25lCmBgYHtyLCBlY2hvID0gRkFMU0V9Ck0xMCA8LSBsbShsb2coR3Jvc3NfVVNfTTEpIH4gVHlwZSArIAogICAgICAgICAgICAgICsgc2NhbGUoTkFjY19taWRkbGUpIAogICAgICAgICAgICAgICsgc2NhbGUoQUluc19taWRkbGUpIAogICAgICAgICAgICAgICsgc2NhbGUoTVBGQ19taWRkbGUpIAogICAgICAgICAgICAgICsgVHlwZTpzY2FsZShOQWNjX21pZGRsZSkgCiAgICAgICAgICAgICAgKyBUeXBlOnNjYWxlKEFJbnNfbWlkZGxlKSAKICAgICAgICAgICAgICArIFR5cGU6c2NhbGUoTVBGQ19taWRkbGUpIAogICAgICAgICAgICAgICwgZGF0YSA9IEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbiAlPiUgbXV0YXRlKFR5cGUgPSBmYWN0b3IoVHlwZSwgbGV2ZWxzID0gYygiaG9ycm9yIiwgImNvbWVkeSIpKSkpCnN1bW1hcnkoTTEwKQpyLnNxdWFyZWRHTE1NKE0xMCkKQUlDKE0xMCkKCiMgQ3JlYXRlIHBhaXJzIHBsb3QuIApnZ3BhaXJzKE0xMF9kZikKZ2dwYWlycyhNMTBfQ19kZikKZ2dwYWlycyhNMTBfSF9kZikKYGBgCgojIE0xMTogTmV1cmFsIG1pZGRsZSBkYXRhICsgYWZmZWN0aXZlIGRhdGEgKyBiZWhhdmlvcmFsIGRhdGEKYGBge3IsIGVjaG8gPSBGQUxTRX0KTTExIDwtIGxtKGxvZyhHcm9zc19VU19NMSkgfiBUeXBlIAogICAgICAgICAgICAgKyBzY2FsZShUaGVhdGVyc19VU19NMSkKICAgICAgICAgICAgICMrIFRvdGFsX3dlZWtzIAogICAgICAgICAgICAgIysgV2Vla3NfYXZnX3Blcl90aGVhdGVyCiAgICAgICAgICAgICArIHNjYWxlKFBvc19hcm91c2FsX3NjYWxlZCkgCiAgICAgICAgICAgICArIHNjYWxlKE5lZ19hcm91c2FsX3NjYWxlZCkgIAogICAgICAgICAgICAgIysgc2NhbGUoV19zY29yZV9zY2FsZWQpIAogICAgICAgICAgICAgKyBzY2FsZShOQWNjX21pZGRsZSkgCiAgICAgICAgICAgICArIHNjYWxlKEFJbnNfbWlkZGxlKSAKICAgICAgICAgICAgICsgc2NhbGUoTVBGQ19taWRkbGUpIAogICAgICAgICAgICAgKyBUeXBlOnNjYWxlKFRoZWF0ZXJzX1VTX00xKQogICAgICAgICAgICAgKyBUeXBlOnNjYWxlKFBvc19hcm91c2FsX3NjYWxlZCkKICAgICAgICAgICAgICsgVHlwZTpzY2FsZShOZWdfYXJvdXNhbF9zY2FsZWQpCiAgICAgICAgICAgICArIFR5cGU6c2NhbGUoTkFjY19taWRkbGUpIAogICAgICAgICAgICAgKyBUeXBlOnNjYWxlKEFJbnNfbWlkZGxlKSAKICAgICAgICAgICAgICsgVHlwZTpzY2FsZShNUEZDX21pZGRsZSkKICAgICAgICAgICAgICwgZGF0YSA9IEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbiAlPiUgbXV0YXRlKFR5cGUgPSBmYWN0b3IoVHlwZSwgbGV2ZWxzID0gYygiaG9ycm9yIiwgImNvbWVkeSIpKSkpCnN1bW1hcnkoTTExKQpyLnNxdWFyZWRHTE1NKE0xMSkKQUlDKE0xMSkKCiMgQ3JlYXRlIHBhaXJzIHBsb3QuIApnZ3BhaXJzKE0xMV9kZikKZ2dwYWlycyhNMTFfQ19kZikKZ2dwYWlycyhNMTFfSF9kZikKYGBgCgojIE0xMjogTmV1cmFsIG9mZnNldCBkYXRhIGFsb25lCmBgYHtyLCBlY2hvID0gRkFMU0V9Ck0xMiA8LSBsbShsb2coR3Jvc3NfVVNfTTEpIH4gVHlwZSArIAogICAgICAgICAgICAgICsgc2NhbGUoTkFjY19vZmZzZXQpIAogICAgICAgICAgICAgICsgc2NhbGUoQUluc19vZmZzZXQpIAogICAgICAgICAgICAgICsgc2NhbGUoTVBGQ19vZmZzZXQpIAogICAgICAgICAgICAgICsgVHlwZTpzY2FsZShOQWNjX29mZnNldCkgCiAgICAgICAgICAgICAgKyBUeXBlOnNjYWxlKEFJbnNfb2Zmc2V0KSAKICAgICAgICAgICAgICArIFR5cGU6c2NhbGUoTVBGQ19vZmZzZXQpIAogICAgICAgICAgICAgICwgZGF0YSA9IEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbiAlPiUgbXV0YXRlKFR5cGUgPSBmYWN0b3IoVHlwZSwgbGV2ZWxzID0gYygiaG9ycm9yIiwgImNvbWVkeSIpKSkpCnN1bW1hcnkoTTEyKQpyLnNxdWFyZWRHTE1NKE0xMikKQUlDKE0xMikKCiMgQ3JlYXRlIHBhaXJzIHBsb3QuIApnZ3BhaXJzKE0xMl9kZikKZ2dwYWlycyhNMTJfQ19kZikKZ2dwYWlycyhNMTJfSF9kZikKYGBgCgojIE0xMzogTmV1cmFsIG9mZnNldCBkYXRhICsgYWZmZWN0aXZlIGRhdGEgKyBiZWhhdmlvcmFsIGRhdGEKYGBge3IsIGVjaG8gPSBGQUxTRX0KTTEzIDwtIGxtKGxvZyhHcm9zc19VU19NMSkgfiBUeXBlIAogICAgICAgICAgICAgKyBzY2FsZShUaGVhdGVyc19VU19NMSkKICAgICAgICAgICAgICMrIFRvdGFsX3dlZWtzIAogICAgICAgICAgICAgIysgV2Vla3NfYXZnX3Blcl90aGVhdGVyCiAgICAgICAgICAgICArIHNjYWxlKFBvc19hcm91c2FsX3NjYWxlZCkgCiAgICAgICAgICAgICArIHNjYWxlKE5lZ19hcm91c2FsX3NjYWxlZCkgIAogICAgICAgICAgICAgIysgc2NhbGUoV19zY29yZV9zY2FsZWQpIAogICAgICAgICAgICAgKyBzY2FsZShOQWNjX29mZnNldCkgCiAgICAgICAgICAgICArIHNjYWxlKEFJbnNfb2Zmc2V0KSAKICAgICAgICAgICAgICsgc2NhbGUoTVBGQ19vZmZzZXQpIAogICAgICAgICAgICAgKyBUeXBlOnNjYWxlKFRoZWF0ZXJzX1VTX00xKQogICAgICAgICAgICAgKyBUeXBlOnNjYWxlKFBvc19hcm91c2FsX3NjYWxlZCkKICAgICAgICAgICAgICsgVHlwZTpzY2FsZShOZWdfYXJvdXNhbF9zY2FsZWQpCiAgICAgICAgICAgICArIFR5cGU6c2NhbGUoTkFjY19vZmZzZXQpIAogICAgICAgICAgICAgKyBUeXBlOnNjYWxlKEFJbnNfb2Zmc2V0KSAKICAgICAgICAgICAgICsgVHlwZTpzY2FsZShNUEZDX29mZnNldCkKICAgICAgICAgICAgICwgZGF0YSA9IEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbiAlPiUgbXV0YXRlKFR5cGUgPSBmYWN0b3IoVHlwZSwgbGV2ZWxzID0gYygiaG9ycm9yIiwgImNvbWVkeSIpKSkpCnN1bW1hcnkoTTEzKQpyLnNxdWFyZWRHTE1NKE0xMykKQUlDKE0xMykKCiMgQ3JlYXRlIHBhaXJzIHBsb3QuIApnZ3BhaXJzKE0xM19kZikKZ2dwYWlycyhNMTNfQ19kZikKZ2dwYWlycyhNMTNfSF9kZikKYGBgCgojIE0xNDogU2VxdWVuY2UgTW9kZWwKYGBge3IsIGVjaG8gPSBGQUxTRX0KTTE0IDwtIGxtKGxvZyhHcm9zc19VU19NMSkgfiBUeXBlIAogICAgICAgICAgICAgKyBzY2FsZShUaGVhdGVyc19VU19NMSkKICAgICAgICAgICAgICMrIFRvdGFsX3dlZWtzIAogICAgICAgICAgICAgIysgV2Vla3NfYXZnX3Blcl90aGVhdGVyCiAgICAgICAgICAgICAjKyBzY2FsZShQb3NfYXJvdXNhbF9zY2FsZWQpIAogICAgICAgICAgICAgIysgc2NhbGUoTmVnX2Fyb3VzYWxfc2NhbGVkKSAgCiAgICAgICAgICAgICAjKyBzY2FsZShXX3Njb3JlX3NjYWxlZCkgCiAgICAgICAgICAgICArIHNjYWxlKE5BY2Nfb25zZXQpIAogICAgICAgICAgICAgKyBzY2FsZShBSW5zX21pZGRsZSkgCiAgICAgICAgICAgICArIHNjYWxlKE1QRkNfb2Zmc2V0KSAKICAgICAgICAgICAgICMrIFR5cGU6c2NhbGUoVGhlYXRlcnNfVVNfTTEpCiAgICAgICAgICAgICAjKyBUeXBlOnNjYWxlKFBvc19hcm91c2FsX3NjYWxlZCkKICAgICAgICAgICAgICMrIFR5cGU6c2NhbGUoTmVnX2Fyb3VzYWxfc2NhbGVkKQogICAgICAgICAgICAgKyBUeXBlOnNjYWxlKE5BY2Nfb25zZXQpIAogICAgICAgICAgICAgKyBUeXBlOnNjYWxlKEFJbnNfbWlkZGxlKSAKICAgICAgICAgICAgICsgVHlwZTpzY2FsZShNUEZDX29mZnNldCkKICAgICAgICAgICAgICwgZGF0YSA9IEFsbFN1YnNfTmV1cmFsQWN0aXZhdGlvbiAlPiUgbXV0YXRlKFR5cGUgPSBmYWN0b3IoVHlwZSwgbGV2ZWxzID0gYygiaG9ycm9yIiwgImNvbWVkeSIpKSkpCnN1bW1hcnkoTTE0KQpyLnNxdWFyZWRHTE1NKE0xNCkKQUlDKE0xNCkKYGBgCgojIE0xNTogU2VxdWVuY2UgTW9kZWwgMgpgYGB7ciwgZWNobyA9IEZBTFNFfQogIyBFZmZlY3RzIGJlY29tZSBtb3JlIHNpZ25pZmljYW50IGlmIHdlIHJlbW92ZSAnVGhlYXRlcl9udW0nIHByZWRpY3Rvci4uLiB3ZSBjYW4gZG8gdGhhdCB3aXRoIHRoZSAKIyAnR3Jvc3NPdmVyVGhlYXRlcnMnIHZhcmlhYmxlLCBob3dldmVyIE1QRkMgbG9va3MgYSBiaXQgZnVubnkuICAKTTE1IDwtIGxtKGxvZyhHcm9zc19VU19NMSkgfiBUeXBlCiAgICAgICAgICAgICArIHNjYWxlKFRoZWF0ZXJzX1VTX00xKQogICAgICAgICAgICAgIysgV2Vla3NfYXZnX3Blcl90aGVhdGVyCiAgICAgICAgICAgICArIHNjYWxlKFBvc19hcm91c2FsX3NjYWxlZCkgCiAgICAgICAgICAgICArIHNjYWxlKE5lZ19hcm91c2FsX3NjYWxlZCkgIAogICAgICAgICAgICAgKyBzY2FsZShOQWNjX29uc2V0KSAKICAgICAgICAgICAgICsgc2NhbGUoQUluc19taWRkbGUpIAogICAgICAgICAgICAgKyBzY2FsZShNUEZDX29mZnNldCkgCiAgICAgICAgICAgICArIFR5cGU6c2NhbGUoVGhlYXRlcnNfVVNfTTEpICMgU2hvdWxkIHdlIGhhdmUgYSB0aGVhdGVycyBpbnRlcmFjdGlvbj8gCiAgICAgICAgICAgICArIFR5cGU6c2NhbGUoUG9zX2Fyb3VzYWxfc2NhbGVkKQogICAgICAgICAgICAgKyBUeXBlOnNjYWxlKE5lZ19hcm91c2FsX3NjYWxlZCkKICAgICAgICAgICAgICsgVHlwZTpzY2FsZShOQWNjX29uc2V0KSAKICAgICAgICAgICAgICsgVHlwZTpzY2FsZShBSW5zX21pZGRsZSkgCiAgICAgICAgICAgICArIFR5cGU6c2NhbGUoTVBGQ19vZmZzZXQpCiAgICAgICAgICAgICAsIGRhdGEgPSBBbGxTdWJzX05ldXJhbEFjdGl2YXRpb24gJT4lIG11dGF0ZShUeXBlID0gZmFjdG9yKFR5cGUsIGxldmVscyA9IGMoImhvcnJvciIsICJjb21lZHkiKSkpKQpzdW1tYXJ5KE0xNSkKci5zcXVhcmVkR0xNTShNMTUpCkFJQyhNMTUpCgojIENyZWF0ZSBwYWlycyBwbG90LiAKZ2dwYWlycyhNMTRfZGYpCmdncGFpcnMoTTE0X0NfZGYpCmdncGFpcnMoTTE0X0hfZGYpCmBgYA==